docker pull 是使用 Docker 的第一条高频命令,它的默认来源是 Docker Hub——全球最大的公共镜像仓库。但在国内网络环境下,直连 Docker Hub 拉取镜像经常超时或龟速,配置镜像加速器成为安装 Docker 后的头等大事。本章先讲清 Docker Hub 的镜像识别与标签规范,再给出加速配置的完整方案,最后覆盖多源切换与私有仓库场景。
| 镜像类型 | 特征 | 示例 |
|---|---|---|
| 官方镜像 | 无命名空间前缀 | 11-Nginx基础概述、mysql、redis |
| 社区镜像 | 带用户/组织前缀 | bitnami/11-Nginx基础概述、grafana/grafana |
| 企业镜像 | 厂商认证 | mcr.microsoft.com/dotnet/aspnet |
规则:名字里只有一个 / 且前面不是域名时,前面的部分就是命名空间;library/ 是官方镜像的隐藏命名空间,所以 ubuntu 等价于 library/ubuntu。
[仓库地址/]命名空间/镜像名:标签
↓ ↓ ↓
docker.io bitnami 11-Nginx基础概述:1.25-alpinedocker.io(Docker Hub);latest——生产环境务必显式指定版本标签,避免依赖漂移。| 标签 | 含义 | 使用建议 |
|---|---|---|
latest | 最新版 | 仅本地实验,禁止生产 |
1.25 | 大版本 | 跟随补丁更新,适合测试 |
1.25.3 | 精确版本 | 生产首选,可复现 |
1.25-alpine | 版本+精简基础 | 体积小,生产常用 |
1.25.3-jdk21 | 多维度组合 | 明确运行环境 |
11-Nginx基础概述:1.25.3,升级时显式改标签并走发布流程;-alpine(小)、-slim(中等)、-bookworm/-jammy(Debian/Ubuntu 系);11-Nginx基础概述@sha256:xxxx…,镜像内容不可变,杜绝标签被覆盖的风险。Docker 守护进程通过 /etc/docker/daemon.json 读取镜像源配置:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn"
]
}公开的 Docker Hub 加速器近年大量关停或限流:DockerProxy(dockerproxy.com)已停止服务,南京大学源仅限教育网访问,2024 年起多家高校与企业镜像站停止对公网提供 Docker Hub 缓存。上表地址仅作配置格式示例,实际可用性以各服务商现状为准;云服务器优先使用云厂商提供的专属加速地址。
生效步骤:
systemctl daemon-reload
systemctl restart docker
docker info | grep -A5 "Registry Mirrors" # 验证加速器已生效加速器地址随服务商运营情况变化,失效时及时更换;云服务器优先使用云厂商提供的专属加速地址。
docker pull 企业源地址/镜像名 显式指定备用源。| 现象 | 排查方向 |
|---|---|
| 连接超时 | 加速器不可达,更换或重试配置 |
| 404 manifest 错误 | 镜像名/标签拼写错误,或源未同步该镜像 |
| 认证失败 | 私有镜像需先 docker login |
| 进度卡住 | 网络抖动,--pull 重试或换源 |
加速器只解决公共镜像的拉取加速,私有仓库(Harbor、企业 Registry)通过两种方式接入:
docker login 仓库地址 认证;insecure-registries 白名单。# 打标签
docker tag myapp:1.0 registry.example.com/team/myapp:1.0
# 推送
docker push registry.example.com/team/myapp:1.0
# 拉取
docker pull registry.example.com/team/myapp:1.0库地址/命名空间/镜像名:标签 是完整命名结构;下一章进入 Docker Compose 多容器编排——用一份 YAML 文件管理整个应用栈。